Basic plot
- Load data from CSV
library(ggplot2)
duration_passholder_type_100 = read.csv("duration_passholder_type_100.csv", header = TRUE)
- Plot the data
qplot(duration_passholder_type_100$passholder_type,duration_passholder_type_100$duration,main = "Basic plot for Passholder type against duration",xlab = "pass holder tpye", ylab = "duration")

Facets
- Load data from CSV
duration_passholder_type_station_name_100 = read.csv("duration_passholder_type_station_name_100.csv", header = TRUE)
- Draw the facets graph
ggplot(duration_passholder_type_station_name_100, aes(duration_passholder_type_station_name_100$passholder_type,
duration_passholder_type_station_name_100$duration,
color = duration_passholder_type_station_name_100$station_name)) +
geom_point() +
facet_grid(cols=vars(duration_passholder_type_station_name_100$station_name)) +
theme(legend.position="none",axis.text.x = element_text(angle = 90, hjust = 1)) +
labs(x = "Pass holder type") +
labs(y = "Duration")

GGMAP
- Load the data
#library(ggmap)
#source('register_google.R')
#register_google(key = "<YOUR_GOOGLE_CLOUD_PLATFORM_API_KEY>")
#station_data = geojson_read("station_map_geo_json.json")
- Draw stations on the map
#map.google <- get_map(c(lon=-118.456667, lat=34.010167), zoom = 12)
#plot(station_data)
#ggmap(map.google) +
# geom_point(data = station_data, aes(x = station_data$features, y = lat, color=alt), alpha = 0.5, shape=1) +
# scale_colour_gradient(limits=c(4000, 8000), low="red", high="blue")
Interactive graph
- load data
library(plotly)
duration_passholder_type_100$text = paste('Pass holder type: ', duration_passholder_type_100$passholder_type, '<br>Duration: ', duration_passholder_type_100$duration)
g = qplot(
passholder_type,
duration,
data = duration_passholder_type_100,
main = "Basic plot for Passholder type against duration",
xlab = "pass holder tpye",
ylab = "duration", aes(passholder_type,duration, text = text))
Ignoring unknown aesthetics: text
ggplotly(g, tooltip = "text")
LS0tCnRpdGxlOiAiWWlyYW4gTGkgcmVwb3J0IgpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdAogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKICB3b3JkX2RvY3VtZW50OiBkZWZhdWx0Ci0tLQojQmFzaWMgcGxvdAoxLiBMb2FkIGRhdGEgZnJvbSBDU1YKYGBge3J9CmxpYnJhcnkoZ2dwbG90MikKZHVyYXRpb25fcGFzc2hvbGRlcl90eXBlXzEwMCA9IHJlYWQuY3N2KCJkdXJhdGlvbl9wYXNzaG9sZGVyX3R5cGVfMTAwLmNzdiIsIGhlYWRlciA9IFRSVUUpCmBgYAoyLiBQbG90IHRoZSBkYXRhCmBgYHtyfQpxcGxvdChkdXJhdGlvbl9wYXNzaG9sZGVyX3R5cGVfMTAwJHBhc3Nob2xkZXJfdHlwZSxkdXJhdGlvbl9wYXNzaG9sZGVyX3R5cGVfMTAwJGR1cmF0aW9uLG1haW4gPSAiQmFzaWMgcGxvdCBmb3IgUGFzc2hvbGRlciB0eXBlIGFnYWluc3QgZHVyYXRpb24iLHhsYWIgPSAicGFzcyBob2xkZXIgdHB5ZSIsIHlsYWIgPSAiZHVyYXRpb24iKQpgYGAKI0ZhY2V0cwoxLiBMb2FkIGRhdGEgZnJvbSBDU1YKYGBge3J9CmR1cmF0aW9uX3Bhc3Nob2xkZXJfdHlwZV9zdGF0aW9uX25hbWVfMTAwID0gcmVhZC5jc3YoImR1cmF0aW9uX3Bhc3Nob2xkZXJfdHlwZV9zdGF0aW9uX25hbWVfMTAwLmNzdiIsIGhlYWRlciA9IFRSVUUpCmBgYAoyLiBEcmF3IHRoZSBmYWNldHMgZ3JhcGgKYGBge3J9CmdncGxvdChkdXJhdGlvbl9wYXNzaG9sZGVyX3R5cGVfc3RhdGlvbl9uYW1lXzEwMCwgYWVzKGR1cmF0aW9uX3Bhc3Nob2xkZXJfdHlwZV9zdGF0aW9uX25hbWVfMTAwJHBhc3Nob2xkZXJfdHlwZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uX3Bhc3Nob2xkZXJfdHlwZV9zdGF0aW9uX25hbWVfMTAwJGR1cmF0aW9uLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBkdXJhdGlvbl9wYXNzaG9sZGVyX3R5cGVfc3RhdGlvbl9uYW1lXzEwMCRzdGF0aW9uX25hbWUpKSArCiAgZ2VvbV9wb2ludCgpICsKICBmYWNldF9ncmlkKGNvbHM9dmFycyhkdXJhdGlvbl9wYXNzaG9sZGVyX3R5cGVfc3RhdGlvbl9uYW1lXzEwMCRzdGF0aW9uX25hbWUpKSArICAKICB0aGVtZShsZWdlbmQucG9zaXRpb249Im5vbmUiLGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gOTAsIGhqdXN0ID0gMSkpICsKICBsYWJzKHggPSAiUGFzcyBob2xkZXIgdHlwZSIpICsKICBsYWJzKHkgPSAiRHVyYXRpb24iKQpgYGAKI0dHTUFQCjEuIExvYWQgdGhlIGRhdGEKYGBge3J9CiNsaWJyYXJ5KGdnbWFwKQojc291cmNlKCdyZWdpc3Rlcl9nb29nbGUuUicpIAojcmVnaXN0ZXJfZ29vZ2xlKGtleSA9ICI8WU9VUl9HT09HTEVfQ0xPVURfUExBVEZPUk1fQVBJX0tFWT4iKQojc3RhdGlvbl9kYXRhICA9IGdlb2pzb25fcmVhZCgic3RhdGlvbl9tYXBfZ2VvX2pzb24uanNvbiIpCmBgYAoyLiBEcmF3IHN0YXRpb25zIG9uIHRoZSBtYXAKYGBge3J9CiNtYXAuZ29vZ2xlIDwtIGdldF9tYXAoYyhsb249LTExOC40NTY2NjcsIGxhdD0zNC4wMTAxNjcpLCB6b29tID0gMTIpCiNwbG90KHN0YXRpb25fZGF0YSkKI2dnbWFwKG1hcC5nb29nbGUpICsKIyAgZ2VvbV9wb2ludChkYXRhID0gc3RhdGlvbl9kYXRhLCBhZXMoeCA9IHN0YXRpb25fZGF0YSRmZWF0dXJlcywgeSA9IGxhdCwgY29sb3I9YWx0KSwgYWxwaGEgPSAwLjUsIHNoYXBlPTEpICsKIyAgc2NhbGVfY29sb3VyX2dyYWRpZW50KGxpbWl0cz1jKDQwMDAsIDgwMDApLCBsb3c9InJlZCIsIGhpZ2g9ImJsdWUiKQpgYGAKI0ludGVyYWN0aXZlIGdyYXBoCjEuIGxvYWQgZGF0YQpgYGB7cn0KbGlicmFyeShwbG90bHkpCmR1cmF0aW9uX3Bhc3Nob2xkZXJfdHlwZV8xMDAkdGV4dCA9IHBhc3RlKCdQYXNzIGhvbGRlciB0eXBlOiAnLCAgZHVyYXRpb25fcGFzc2hvbGRlcl90eXBlXzEwMCRwYXNzaG9sZGVyX3R5cGUsICc8YnI+RHVyYXRpb246ICcsIGR1cmF0aW9uX3Bhc3Nob2xkZXJfdHlwZV8xMDAkZHVyYXRpb24pCmcgPSBxcGxvdCgKICBwYXNzaG9sZGVyX3R5cGUsCiAgZHVyYXRpb24sCiAgZGF0YSA9IGR1cmF0aW9uX3Bhc3Nob2xkZXJfdHlwZV8xMDAsCiAgbWFpbiA9ICJCYXNpYyBwbG90IGZvciBQYXNzaG9sZGVyIHR5cGUgYWdhaW5zdCBkdXJhdGlvbiIsCiAgeGxhYiA9ICJwYXNzIGhvbGRlciB0cHllIiwgCiAgeWxhYiA9ICJkdXJhdGlvbiIsIGFlcyh0ZXh0ID0gdGV4dCkpIAoKZ2dwbG90bHkoZywgdG9vbHRpcCA9ICJ0ZXh0IikKYGBg